<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <script>
    // 1.利用new Object() 创建对象
    let obj = new Object();
    // 2.利用对象字面量来创建对象
    let obj2 = {};
    // 3.利用构造函数来创建对象
    let Star = function (uname, age) {
      // 1.把公共的属性和方法抽取出来，然后封装到函数里面了
      // 2.使用new来创建实例对象
      /* 
        new 在执行时会做以下的四件事:
          1.在内存中创建一个空的对象
          2.this指向这个新的对象
          3.执行构造函数里面的代码,给这个新的对象添加属性或方法
          4.返回这个新的对象(所以构造函数里不需要return)
       */
      this.uname = uname;
      this.age = age;
      this.sing = function () {
        console.log(`大家好`);
      };
    };
    const lud = new Star("好的", 4);
    console.log(lud.age);
  </script>
</body>

</html>